/* 
    参数：
        key     cookie的属性
        value   cookie的属性值
        expires cookie的过期时间  单位分钟

        key 和value 是必须的
        expires 可选
            是否需要写过期时间 需要去判断过期时间是否传递
    返回值：没有返回值
*/
function setCookie(key, value, expires) {
    if (!key || !value) {
        throw Error("key 和value是必须传递的参数");
    }

    // 如果不设置path路径 这个cookie 只能在当前的文件夹中访问
    // path=/ 表示这个cookie设置在根目录下面（这个域名的根目录）
    if (!expires) {
        document.cookie = `${key}=${value};path=/`;
        return;
    }

    let date = new Date();
    let time = date.getTime() - 8 * 60 * 60 * 1000 + expires * 60 * 1000;

    date.setTime(time);
    document.cookie = `${key}=${value};expires=${date};path=/`;
}

/* 
    获取cookie
    getCookie();
    如果没有传递参数 ，那么把所有的cookie都返回（以对象的形式返回）
    如果有参数 把这个参数对应cookie返回

    getCookie()===>{a:1,b:2}
    getCookie('a')===>1
*/

function getCookie(attr) {
    let cookie = document.cookie;
    // a=1; b=2; c=3; d=4

    let arr = cookie.split("; ");
    // ['a=1','b=2','c=3','d=4']

    let obj = {};
    arr.forEach((item) => {
        // item === a=1
    
        let newArr = item.split("=");
        // newArr = ['a','1']
        obj[newArr[0]] = newArr[1];
    });

    if (attr) {
        return obj[attr];
    }

    return obj;
}
